package icu.zlz.emqx.mapper;

import java.util.List;
import java.util.Map;

import feign.Param;
import icu.zlz.emqx.domain.IotGroupUser;

/**
 * 设备组用户关联Mapper接口
 *
 * @author zangsheng
 * @since 2024-12-28
 */
public interface IotGroupUserMapper {
    /**
     * 查询设备组用户关联
     *
     * @param groupId 设备组用户关联主键
     * @return 设备组用户关联
     */
    public IotGroupUser selectIotGroupUserByGroupId(Long groupId);

    /**
     * 查询设备组用户关联列表
     *
     * @param iotGroupUser 设备组用户关联
     * @return 设备组用户关联集合
     */
    public List<IotGroupUser> selectIotGroupUserList(IotGroupUser iotGroupUser);
    public List<IotGroupUser> selectIotGroupUserListByUserId(Long userId);

    /**
     * 新增设备组用户关联
     *
     * @param iotGroupUser 设备组用户关联
     * @return 结果
     */
    public int insertIotGroupUser(IotGroupUser iotGroupUser);

    /**
     * 修改设备组用户关联
     *
     * @param iotGroupUser 设备组用户关联
     * @return 结果
     */
    public int updateIotGroupUser(IotGroupUser iotGroupUser);

    /**
     * 删除设备组用户关联
     *
     * @param groupId 设备组用户关联主键
     * @return 结果
     */
    public int deleteIotGroupUserByGroupId(Long groupId);

    /**
     * 批量删除设备组用户关联
     *
     * @param groupIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteIotGroupUserByGroupIds(Long[] groupIds);

    List<Map<String, Object>> selectAllocatedList(IotGroupUser user);

    List<Map<String, Object>> selectUnallocatedList(IotGroupUser user);

    int batchGroupUser(List<IotGroupUser> list);




    public int deleteGroupUserInfo(IotGroupUser iotGroupUser);


    public int deleteGroupUserInfos(@Param("groupId") Long groupId, @Param("userIds") Long[] userIds);
}
